Introduction

Column

Background

  • Cyclistic is a fictional bike share company launched in 2016 and based in Chicago in the United States of America (USA). A bike-share program that features more than 5,800 bicycles that are geo-tracked and locked into a network of 600 docking stations in Chicago. Cyclistic sets itself apart by also offering reclining bikes, hand tricycles, and cargo bikes, making bike-share more inclusive to people with disabilities and riders who can’t use a standard two-wheeled bike.

  • The bikes can be unlocked from one station and returned to any other station in the system anytime.

  • Customers are either single pass purchasers known as casual or annual subscribers known as members

  • The monthly data analysed is from a real company called Divvy shared under a Data License Agreement.

Stakeholders

  • Lily Moreno: The director of Marketing and Manager of Cyclistic marketing analytics team

  • Cyclistic executive team

  • Cyclistic marketing analyst team

  • Cyclistic finance analysts

Business Problem

  • How do annual members and casual riders use Cyclistic bikes differently?

  • Why would casual riders buy Cyclistic annual membership?

  • How can Cyclistic use digital media to influence casual riders to become members

Business Task

  • Compare how usage of bikes differ between annual members and casual riders and use the findings to answer how and why to design new marketing strategies aimed at converting casual riders into annual riders.

Primary Objective

  • Compare how annual members and casual riders use Cyclistic bikes differently and use the findings to increase the annual membership.

Column

Source of Data and Licences

  • Cyclistic Bike-Share Data was obtained directly from company records available at https://divvy-tripdata.s3.amazonaws.com/index.html

  • The data is downloaded as a .csv format and is organized in both long and wide formats based on the .csv files

  • The database for the analysis spans over a long period of time and contains data collected from January, 2021 through December,2021 which are provided by the company. Therefore, the source is Reliable, Original, Comprehensive, Current and Cited.

  • The data collected has been fully treated with absolute abonymity, no personal data of any user has been included. Licence to use data is available at https://ride.divvybikes.com/data-license-agreement

  • Data Used in the analysis is from the previous 12 months of Cyclistic trip data. This is from January 5th, 2021 to September 9th, 2022.

Data Cleaning and Manipulation

  • I used R Markdown for the data cleaning and transformation process. as it gives the option of documenting, sharing every step taken and reproducing the outputs as well as creating data visualizations.

  • The data was imported, inspected and combined into one harmonious dataset

  • Data was cleaned in accordance with rules found at https://ride.divvybikes.com/data-license-agreement

  • Unessential columns were removed. Columns were created for day, month, year, day_of_week and ride_length. Rides less than zero minutes were removed (i.e negative values).

  • Ride_length was calculated in minutes by the difference between the start and end times

  • Overall usage of bikes was calculated by multiplying average ride_lenth in hours and number of rides

  • Blank entries as well as outliers were removed from the dataset.

  • Remaining data was organized by rideable_type(type of bike), member or casual and day_of_week.

  • My R Markdown file contains documantation of the cleaning and manipulation process linked in the description.

Summary Statistics of Data

Row

Average Ride Length for Casual Rides

30.44

Average Ride Length for Member Rides

13.48

Maximum Ride Length for Casual Rides

55944.15

Maximum Ride Length for Member Rides

1499.933

Minimum Ride Length for Casual Rides

0.17

Minimum Ride Length for Member Rides

0.17

Total Rides by day and month

Column

Chart A1

Chart A2

Column

Chart B1

Chart B2

Average Ride Duration in Minutes

Column

Chart C

Chart D

Rider Behaviour Throughout the Seasons

Row

Total Casual Rides

2485528

Total Casual Rides in Weekends

1027616

Total Member Rides

2987759

Total Member Rides in Weekends

797522

Column

Chart E

Chart F

Column

Chart G

Chart H

Rideable Type

Column

Chart I

Chart J

Column

Chart K

Chart L

Column

Chart M

Chart N

Summary and Recommendations

Column

Key Findings: Summary

  • Casual riders tended to ride more on the weekend, that is on Saturdays and Sundays, peaking on Saturday at 550,623 rides. Their participation exceeded that of the long term members.

  • Member riders are more likely to use the bike during the weekdays (Monday to Friday) peaking on wednesdays at 460,560 number of rides.

  • Overall ridership change throughout the year where we see a large drop-off during the winter months (December to March) , especially for Casual users. The highest number of rides are in the summer months of June to September.

  • Casual riders tend to ride more on the warmer months (June to September) peaking on July at 441,428 number of rides. Their participation exceeds that of the long term members.

  • Casual demographic spend on average a longer time per period than members.

  • Annual members tend to stick to classic bikes as opposed to electric bikes. This might suggest more available classic bikes. Also the pricing between classic bikes might be a factor

  • Electric bikes are favoured in the Autumn month(October to November) peaking on November at 198,263 total rides

Column

Recommandations

  • Advertise benefits for using bikes from Monday to Friday as part of annual membership. the benefits could include: * Decreased hourly rates during peak commuting hours in the morning. * Priority access to bikes. * Integrating schemes to ease commuting to work.

  • Introduce a rewarding system whereby users with an annual membership who use Cyclistic bikes benefit from; * Decreased hourly rates for Annual members for the weekend. * Decreased hourly rates for longer duration rides. * Rewarding annual members with free minutes each weekend

  • Introduce a weekend pass priced below the annual pass

  • Introduce Referral Rewards

  • Introducing plans that may be more appealing to casuals for the summer months. The marketing campaign should be done during the winter months in preparation.

---
title: "Cyclistic Bike-Share Analysis "
author: "Muthaura Joseph Mugambi"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    vertical_layout: fill
    social: ["menu"]
    source_code: embed
---

```{r setup, include=FALSE, warning=FALSE, message=FALSE}
library(flexdashboard) # for building dashboards
library(plotly) # for translating your ggplot2 graphics to an interactive web-based version
library(tidyverse) # for data manipulation
library(highcharter) # for interactive Visualizations
library(DT)
```

```{r import data, include=FALSE, warning=FALSE, message=FALSE}
bike_trip <- read.csv("D:/Data Analysis/Cyclistic Project/Bike_trips.csv")
view(head(bike_trip,500))

# Arrange the day_of_week and months column accordingly
bike_trip$day_of_week <- ordered(bike_trip$day_of_week, levels=c("Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"))
bike_trip$month <- ordered(bike_trip$month, levels=c("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"))

# Import data for the pie charts

casualrider_table <- read.csv("D:/Data Analysis/Cyclistic Project/Casuals.csv")
view(casualrider_table)

MemberRider_table <- read.csv("D:/Data Analysis/Cyclistic Project/Members.csv")
view(MemberRider_table)
colnames(MemberRider_table)
```

# Introduction

Column {data-width=500, .tabset}
-----------------------------------------------------------------------

### Background

* Cyclistic is a fictional bike share company launched in 2016 and based in Chicago in the United States of America (USA). A bike-share program that features more than 5,800 bicycles that are geo-tracked and locked into a network of 600 docking stations in Chicago. Cyclistic sets itself apart by also offering reclining bikes, hand tricycles, and cargo bikes, making bike-share more inclusive to people with disabilities and riders who can’t use a standard two-wheeled bike.

* The bikes can be unlocked from one station and returned to any other station in the system anytime.

* Customers are either single pass purchasers known as **casual** or annual subscribers known as **members**

* The monthly data analysed is from a real company called **Divvy** shared under a Data License Agreement. 

### Stakeholders

* Lily Moreno: The director of Marketing and Manager of Cyclistic marketing analytics team

* Cyclistic executive team

* Cyclistic marketing analyst team

* Cyclistic finance analysts


### Business Problem

* How do annual members and casual riders use Cyclistic bikes differently?

* Why would casual riders buy Cyclistic annual membership?

* How can Cyclistic use digital media to influence casual riders to become members

### Business Task

* Compare how usage of bikes differ between annual members and casual riders and use the findings to answer how and why to design new marketing strategies aimed at converting casual riders into annual riders.

### Primary Objective

* Compare how annual members and casual riders use Cyclistic bikes differently and use the findings to increase the annual membership.


Column {data-width=500, .tabset}
-----------------------------------------------------------------------

### Source of Data and Licences

* Cyclistic Bike-Share Data was obtained directly from company records available at <https://divvy-tripdata.s3.amazonaws.com/index.html>

* The data is downloaded as a .csv format and is organized in both long and wide formats based on the .csv files

* The database for the analysis spans over a long period of time and contains data collected from January, 2021 through December,2021 which are provided by the company. Therefore, the source is Reliable, Original, Comprehensive, Current and Cited.

* The data collected has been fully treated with absolute abonymity, no personal data of any user has been included. Licence to use data is available at <https://ride.divvybikes.com/data-license-agreement>

* Data Used in the analysis is from the previous 12 months of Cyclistic trip data. This is from January 5th, 2021 to September 9th, 2022.

### Data Cleaning and Manipulation

* I used R Markdown for the data cleaning and transformation process. as it gives the option of documenting, sharing every step taken and reproducing the outputs as well as creating data visualizations.

* The data was imported, inspected and combined into one harmonious dataset

* Data was cleaned in accordance with rules found at <https://ride.divvybikes.com/data-license-agreement>

* Unessential columns were removed. Columns were created for day, month, year, day_of_week and ride_length. Rides less than zero minutes were removed (i.e negative values). 

* Ride_length was calculated in minutes by the difference between the start and end times

* Overall usage of bikes was calculated by multiplying average ride_lenth in hours and number of rides

* Blank entries as well as outliers were removed from the dataset.

* Remaining data was organized by rideable_type(type of bike), member or casual and day_of_week.

* My R Markdown file contains documantation of the cleaning and manipulation process linked in the description.


# Summary Statistics of Data

Row {data-width=100}
-----------------------------------------------------------------------

### Average Ride Length for Casual Rides

```{r}
valueBox(30.44, caption = "AVG Ride Length for Casual", icon="fa-bicycle")
```

### Average Ride Length for Member Rides

```{r}
valueBox(13.48, caption = "AVG Ride Length for Members", icon="fa-bicycle")
```

### Maximum Ride Length for Casual Rides

```{r}
valueBox(55944.15, caption = "Max Ride Length for Casual", icon="fa-bicycle")
```

### Maximum Ride Length for Member Rides

```{r}
valueBox(1499.933, caption = "Max Ride Length for Members", icon="fa-bicycle")
```

### Minimum Ride Length for Casual Rides

```{r}
valueBox(0.17, caption = "Min Ride Length for Casual", icon="fa-bicycle")
```

### Minimum Ride Length for Member Rides

```{r}
valueBox(0.17, caption = "Min Ride Length for Members", icon="fa-bicycle")
```

# Total Rides by day and month

Column {data-width=500, .tabset}
-----------------------------------------------------------------------

### Chart A1

```{r}
# Visualizing how riding habits change throughout the weekdays using column charts.
chartA1 <- bike_trip %>% 
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, weekday) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, weekday) %>% 
  ggplot(mapping = aes(x = weekday, y = number_of_rides, fill = member_casual)) +
  geom_col(position = "dodge") + labs(title = "Total Rides",
                                      subtitle = "Total Number of Rides by Day",
                                      x = "Day",
                                      y = "Number of Rides",
                                      fill = "Rider Type")
ggplotly(chartA1)
```

### Chart A2

```{r}
# I visualized the total number of rides in a line graph to clearly see when the number of rides increased and decreased During the Weekday between the two types of riders
chartA2 <- bike_trip %>%  
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, weekday) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, weekday) %>% 
  ggplot(mapping = aes(x = weekday, y = number_of_rides, fill = member_casual)) +
  geom_line(mapping = aes(x = weekday, y = number_of_rides, color = member_casual, group = member_casual)) + 
  labs(title = "Behaviour of Riders by Weekday", 
       subtitle = "When Member and Casual Riders use the Bikes", 
       x = "Day", 
       y = "Number of Rides", 
       fill = "Rider Type")
ggplotly(chartA2)
```

Column {data-width=500, .tabset}
-----------------------------------------------------------------------

### Chart B1

```{r}
# Visualizing how riding habits change throughout the year using column charts.
chartB1 <- bike_trip %>% 
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, month) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, month) %>% 
  ggplot(mapping = aes(x = month, y = number_of_rides, fill = member_casual)) +
  geom_col(position = "dodge") + labs(title = "Total Rides per Month",
                                      subtitle = "Total Number of Rides by month",
                                      x = "Month",
                                      y = "Number of Rides",
                                      fill = "Rider Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chartB1)
```

### Chart B2

```{r}
# Visualizing how riding habits change throughout the year using line chart to clearly see when the number of rides increased and decreased throughout the months between the two types of riders
chartB2 <- bike_trip %>%  
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, month) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, month) %>% 
  ggplot(mapping = aes(x = month, y = number_of_rides, fill = member_casual)) +
  geom_line(mapping = aes(x = month, y = number_of_rides, color = member_casual, group = member_casual)) + 
  labs(title = "Behaviour of Riders by Month", 
       subtitle = "When Member and Casual Riders use the Bikes", 
       x = "Month", 
       y = "Number of Rides", 
       fill = "Rider Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chartB2)
```

# Average Ride Duration in Minutes

Column {data-width=500, .tabset}
-----------------------------------------------------------------------

### Chart C

```{r}
# Average ride duration by day

chartc <- bike_trip %>% 
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, weekday) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, weekday) %>% 
  ggplot(mapping = aes(x = weekday, y = average_duration, fill = member_casual)) +
  geom_col(position = "dodge") + labs(title = "Average Ride duration by Weekdays",
                                      subtitle = "Average Duration of Each Bike Ride by Day",
                                      x = "Day",
                                      y = "Average Ride duration in Minutes",
                                      fill = "Rider Type") +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chartc)
```

### Chart D

```{r}
# Average ride duration by month
chartd <- bike_trip %>%  
  mutate(weekday = lubridate :: wday(started_at, label = TRUE)) %>% 
  group_by(member_casual, month) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(member_casual, month) %>% 
  ggplot(mapping = aes(x = month, y = average_duration, fill = member_casual)) +
  geom_col(position = "dodge") + labs(title = "Average Ride Duration by Month",
                                      subtitle = "Average Duration of Each Bike Ride by Month",
                                      x = "Month",
                                      y = "Average Ride duration in Minutes",
                                      fill = "Rider Type") +
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chartd)
```



# Rider Behaviour Throughout the Seasons

Row {data-width=100}
-----------------------------------------------------------------------

### Total Casual Rides

```{r}
valueBox(2485528, caption = "Total Casual Rides", icon="fa-bicycle")
```

### Total Casual Rides in Weekends

```{r}
valueBox(1027616, caption = "Total Casual Rides in Weekends", icon="fa-bicycle")
```

### Total Member Rides

```{r}
valueBox(2987759, caption = "Total Member Rides", icon="fa-bicycle")
```

### Total Member Rides in Weekends

```{r}
valueBox(797522, caption = "Total Member Rides in Weekends", icon="fa-bicycle")
```


Column {data-width=350, .tabset}
-----------------------------------------------------------------------

### Chart E

```{r}
# visualization of Total casual riders by season

chart5 <- casualrider_table %>% 
  group_by(seasons) %>% 
  plot_ly(labels = ~seasons,
          values = ~perc_casual_ride,
          marker = list(colors = "Greens")) %>% 
  add_pie(hole = 0) %>% 
  layout(title = "Proportion of Total Casual Rides by Seasons", 
         xaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F),
         yaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F))
chart5
```

### Chart F

```{r}
# visualization of casual riders in the weekend by season

chart6 <- casualrider_table %>% 
  group_by(seasons) %>% 
  plot_ly(labels = ~seasons,
          values = ~casual_weekend_rider,
          marker = list(colors = "Greens")) %>% 
  add_pie(hole = 0) %>% 
  layout(title = "Proportion of Weekend Casual Rides by Seasons", 
         xaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F),
         yaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F))
chart6

```

Column {data-width=350, .tabset}
-----------------------------------------------------------------------

### Chart G

```{r}
# visualization of Member Rides by Season

chart7 <- MemberRider_table %>% 
  group_by(climate) %>% 
  plot_ly(labels = ~climate,
          values = ~memberSeasonal_ridePerc,
          marker = list(colors = "Greens")) %>% 
  add_pie(hole = 0) %>% 
  layout(title = "Proportion of Total Member Rides by Seasons", 
         xaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F),
         yaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F))
chart7

```

### Chart H

```{r}
# Visualization of member riders in the weekend by season

chart8 <- MemberRider_table %>% 
  group_by(climate) %>% 
  plot_ly(labels = ~climate,
          values = ~memberweekend_rideperc_seasonal,
          marker = list(colors = "Greens")) %>% 
  add_pie(hole = 0) %>% 
  layout(title = "Proportion of Weekend Member Rides by Seasons", 
         xaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F),
         yaxis = list(zeroline = F,
                      showline = F,
                      showticklabels = F,
                      showgrid = F))
chart8
```

# Rideable Type

Column {data-width=350, .tabset}
-----------------------------------------------------------------------

### Chart I

```{r}
# Which bike is popular

chart14 <- bike_trip %>%  
  mutate(weekday = lubridate::wday(started_at, label = TRUE)) %>% 
  group_by(rideable_type, member_casual) %>% 
  summarise(number_of_rides = n()
            ,average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, member_casual)  %>% 
  ggplot(aes(x = rideable_type, y = number_of_rides, fill = member_casual)) +
  geom_col(position = "dodge") + labs(title = "Which Bike is Popular",
       x = "Type of Bike",
       y = "Total Rides",
       fill = "Type of Riders") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart14)
```


### Chart J

```{r}
# Type of bike chosen throughout the year
chart9 <- bike_trip %>%  
  mutate(weekday = lubridate::wday(started_at, label = TRUE)) %>% 
  group_by(rideable_type, month) %>% 
  summarise(number_of_rides = n()
            ,average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, month)  %>% 
  ggplot(aes(x = month, y = number_of_rides, fill = rideable_type)) +
  geom_col(position = "dodge") + labs(title = "Type of Bike Riders Choose based on the Time of Year",
      subtitle = "Total Rides by Month",
       x = "Month",
       y = "Total Rides",
       fill = "Bike Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart9)
```

Column {data-width=350, .tabset}
-----------------------------------------------------------------------

### Chart K

```{r}
# type of bike members chose throughout by weekday

# Filter for member rides
bike_trip_member <-  filter(bike_trip, member_casual == "member")

# Type of bike chosen by member riders by weekday
chart10 <- bike_trip_member %>% 
  group_by(rideable_type, day_of_week) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, day_of_week)%>% 
  ggplot(aes(x = day_of_week, y = number_of_rides, fill = rideable_type)) +
  geom_col(position = "dodge") + labs(title="Type of Bikes Members Choose based on Days", 
                                      x = "Week Day", 
                                      y = "Number of Member Rides") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart10)
```

### Chart L

```{r}
# Type of bike chosen by members throughout the year.

chart11 <- bike_trip_member %>%  
  group_by(rideable_type, month) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, month)%>% 
  ggplot(aes(x = month, y = number_of_rides, fill = rideable_type)) +
  geom_col(position = "dodge") + labs(title = "Type of Bikes Members Choose based on Months",
      subtitle = "Total Member Rides by Month",
       x = "Month",
       y = "Number of Member Rides",
       fill = "Bike Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart11)
```

Column {data-width=350, .tabset}
-----------------------------------------------------------------------

### Chart M

```{r}
#Type of bike chosen by casual riders by weekday

# Filter for casual rides
bike_trip_casual <-  filter(bike_trip, member_casual == "casual")

chart12 <- bike_trip_casual %>%  
  group_by(rideable_type, day_of_week) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, day_of_week)  %>% 
  ggplot(aes(x = day_of_week, y = number_of_rides, fill = rideable_type)) +
  geom_col(position = "dodge") + labs(title = "Type of Bike Casual Riders Choose based on Days",
      subtitle = "Total Member Rides by Weekday",
       x = "Week Day",
       y = "Number of Casual Rides",
       fill = "Bike Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart12)
```

### Chart N

```{r}
# Type of bike chosen by casual riders by month
chart13 <- bike_trip_casual %>%  
  group_by(rideable_type, month) %>% 
  summarise(number_of_rides = n(), average_duration = mean(ride_length)) %>% 
  arrange(rideable_type, month)  %>% 
  ggplot(aes(x = month, y = number_of_rides, fill = rideable_type)) +
  geom_col(position = "dodge") + labs(title = "Type of Bike Casual Riders Choose based on Months",
      subtitle = "Total Member Rides by Months",
       x = "Months",
       y = "Number of Casual Rides",
       fill = "Bike Type") + 
  theme(axis.text.x = element_text(angle = 60, hjust = 1))

ggplotly(chart13)
```

# Summary and Recommendations

Column {data-width=500}
-----------------------------------------------------------------------

### Key Findings: Summary

* Casual riders tended to ride more on the **weekend**, *that is on Saturdays and Sundays*, peaking on Saturday at 550,623 rides. Their participation exceeded that of the long term members.

* Member riders are more likely to use the bike during the weekdays (Monday to Friday) peaking on **wednesdays** at 460,560 number of rides.

* Overall ridership change throughout the year where we see a **large drop-off** during the winter months (December to March) , especially for Casual users. The highest number of rides are in the summer months of June to September.

* Casual riders tend to ride **more** on the warmer months (June to September) peaking on July at 441,428 number of rides. Their participation **exceeds** that of the long term members.

* Casual demographic spend on average a **longer time per period** than members.

* Annual members tend to stick to **classic bikes** as opposed to electric bikes. This might suggest more available classic bikes. Also the pricing between classic bikes might be a factor

* Electric bikes are favoured in the **Autumn month(October to November)** peaking on November at 198,263 total rides


Column {data-width=500}
-----------------------------------------------------------------------

### Recommandations

* Advertise benefits for using bikes from Monday to Friday as part of annual membership. the benefits could include:
        * Decreased hourly rates during peak commuting hours in the morning.
        * Priority access to bikes.
        * Integrating schemes to ease commuting to work.
        
* Introduce a rewarding system whereby users with an annual membership who use Cyclistic bikes benefit from;
        * Decreased hourly rates for Annual members for the weekend.
        * Decreased hourly rates for longer duration rides.
        * Rewarding annual members with free minutes each weekend

* Introduce a weekend pass priced below the annual pass

* Introduce Referral Rewards

* Introducing plans that may be more appealing to casuals for the summer months. The marketing campaign should be done during the winter months in preparation.